# coding=utf-8
from django.db import models

class Budynek(models.Model):
    adres = models.TextField()
    kontakt = models.TextField()
    opis = models.TextField()
    def __unicode__(self):
        return self.adres
    class Meta:
        verbose_name_plural = "Budynki"

class Sala(models.Model):
    id_budynku = models.ForeignKey(Budynek, db_column="id_budynku") 
    opis = models.TextField()
    czas_przerwy_technicznej = models.IntegerField()
    def __unicode__(self):
        return self.opis
    class Meta:
        verbose_name_plural = "Sale"

class Film(models.Model):
    tytul = models.TextField()
    rezyser = models.TextField() 
    aktorzy = models.TextField()
    opis = models.TextField()
    czas_trwania = models.IntegerField()
    premiera = models.DateTimeField(auto_now=False, auto_now_add=False)
    premiera_w_polsce = models.DateTimeField(auto_now=False, auto_now_add=False)
    def __unicode__(self):
        return self.tytul
    class Meta:
        verbose_name_plural = "Filmy"

class Seans(models.Model):
    id_filmu = models.ForeignKey(Film, db_column="id_filmu")
    id_sali = models.ForeignKey(Sala, db_column="id_sali")
    rozpoczecie = models.DateTimeField(auto_now=False, auto_now_add=False)
    def __unicode__(self):
        return unicode(self.id_filmu)+" - "+unicode(self.rozpoczecie)
    class Meta:
        verbose_name_plural = "Seanse"

class Miejsce(models.Model):
    id_sali = models.ForeignKey(Sala, db_column="id_sali")
    rzad = models.IntegerField()
    miejsce = models.IntegerField()
    def __unicode__(self):
        return u"{0}: miejsce {1},{2}".format(self.id_sali, self.rzad, self.miejsce)
    class Meta:
        verbose_name_plural = "Miejsca"

class Awaria(models.Model):
    czego = models.CharField(max_length=10)
    id_obiektu = models.IntegerField()
    od = models.DateTimeField(auto_now=False, auto_now_add=True)
    do = models.DateTimeField(auto_now=False, auto_now_add=False, null=True)
    def __unicode__(self):
        return u"awaria {0} (od {1})".format(self.czego, self.od)
    class Meta:
        verbose_name_plural = "Awarie"

class Instancja_miejsca(models.Model):
#    MIEJSCE_CHOICES = (
#        (u'wolny', u'wolny'),
#        (u'zarezerwowany', u'zarezerwowany'),
#        (u'kupiony', u'kupiony'),
#        (u'niedostepny', u'niedostepny'),
#    )
    id_miejsca = models.ForeignKey(Miejsce, db_column="id_miejsca")
    id_seansu = models.ForeignKey(Seans, db_column="id_seansu")
#    stan = models.CharField(max_length=20, choices=MIEJSCE_CHOICES)
    stan = models.CharField(max_length=20)
    def __unicode__(self):
        return u"{0}: miejsce id={1}".format(self.id_seansu, self.id_miejsca)
    class Meta:
        verbose_name_plural = "Instancje miejsc"

class Typ_biletu(models.Model):
    opis = models.TextField()
    cena = models.DecimalField(max_digits=10, decimal_places=3)
    def __unicode__(self):
        return self.opis
    class Meta:
        verbose_name_plural = "Typy biletów"

class Mozliwy_bilet(models.Model):
    id_typu = models.ForeignKey(Typ_biletu, db_column="id_typu")
    id_seansu = models.ForeignKey(Seans, db_column="id_seansu")
    def __unicode__(self):
        return u"{0}, {1}".format(self.id_typu, self.id_seansu)
    class Meta:
        verbose_name_plural = "Możliwe bilety"

class Klient(models.Model):
    login = models.TextField()
    haslo = models.TextField()
    imie = models.TextField()
    nazwisko = models.TextField()
    def __unicode__(self):
        return u"{0} {1} ({2})".format(self.imie, self.nazwisko, self.login)
    class Meta:
        verbose_name_plural = "Klienci"

class Ranga(models.Model):
    skrot = models.TextField(unique=True)
    opis = models.TextField()
    def __unicode__(self):
        return self.skrot
    class Meta:
        verbose_name_plural = "Rangi"

class Ranga_klienta(models.Model):
    id_rangi = models.ForeignKey(Ranga, db_column="id_rangi")
    id_klienta = models.ForeignKey(Klient, db_column="id_klienta")
    def __unicode__(self):
        return u"{0}, {1}".format(self.id_rangi, self.id_klienta)
    class Meta:
        verbose_name_plural = "Rangi klientów"

class Limit_rezerwacji(models.Model):
    id_rangi = models.ForeignKey(Ranga, db_column="id_rangi")
    limit = models.IntegerField()
    def __unicode__(self):
        return u"{0}, {1}".format(self.id_rangi, self.limit)
    class Meta:
        verbose_name_plural = "Limity rezerwacji"

class Promocja(models.Model):
    od_rezerwacja = models.DateTimeField(auto_now=False, auto_now_add=False)
    do_rezerwacja = models.DateTimeField(auto_now=False, auto_now_add=False, null=True)
    od_seans = models.DateTimeField(auto_now=False, auto_now_add=False)
    do_seans = models.DateTimeField(auto_now=False, auto_now_add=False, null=True)
    id_rangi = models.IntegerField()
    znizka = models.IntegerField()
#    TYP_CHOICES = (
#        (u'procentowa', u'procentowa'),
#        (u'stala', u'stala'),
#    )
#    typ = models.TextField(choices=TYP_CHOICES)
    typ = models.TextField()
    def __unicode__(self):
        return u"{0} ({1})".format(self.znizka, self.typ)
    class Meta:
        verbose_name_plural = "Promocje"


class Rezerwacja(models.Model):
    id_klienta = models.ForeignKey(Klient, db_column="id_klienta")
    id_instancji_miejsca = models.ForeignKey(Instancja_miejsca, db_column="id_instancji_miejsca")
    id_typu_biletu = models.ForeignKey(Typ_biletu, db_column="id_typu_biletu")
    kiedy = models.DateTimeField(auto_now=False, auto_now_add=True)
    def __unicode__(self):
        return unicode(self.kiedy)
    class Meta:
        verbose_name_plural = "Rezerwacje"
    
